Bicycle control system

ABSTRACT

A method for controlling electronic shifting of a bicycle includes identifying, by a processor, a torque at a crank arm of the bicycle. The processor compares the identified torque or a parameter based on the identified torque to a predetermined band. The predetermined band has an upper limit and a lower limit. The processor determines a target cadence based on the comparison. The processor determines a cadence band based on the determined target cadence. The method also includes controlling the electronic shifting of the bicycle based on the determined cadence band. The controlling of the electronic shifting of the bicycle includes actuating a motor of a derailleur of the bicycle for the electronic shifting of the bicycle when a cadence of the bicycle is outside of the determined cadence band.

BACKGROUND 1. Field of the Disclosure

The present disclosure is generally directed to bicycle shiftingcontrol, and more particularly, to bicycle shifting control for anelectric bicycle.

2. Description of Related Art

A bicycle with a pedal assist electric motor (e.g., an electric bicycleor an ebike) may include wheel speed and crank speed sensors that may beused as inputs to automatic shifting algorithms for a transmission ofthe bicycle. An automatic shifting algorithm compares the determinedcadence to a cadence band and may initiate a shift based on thecomparison.

SUMMARY

In one example, a method for controlling electronic shifting of abicycle includes identifying, by a processor, a torque at a crank arm ofthe bicycle, and comparing, by the processor, the identified torque or aparameter based on the identified torque to a predetermined band. Thepredetermined band has an upper limit and a lower limit. The methodincludes determining, by the processor, a target cadence based on thecomparison, and determining, by the processor, a cadence band based onthe determined target cadence. The method also includes controlling theelectronic shifting of the bicycle based on the determined cadence band.The controlling of the electronic shifting of the bicycle includesactuating a motor of a derailleur of the bicycle for the electronicshifting of the bicycle when a cadence of the bicycle is outside of thedetermined cadence band.

In one example, the comparing includes comparing the identified torqueto a predetermined torque band. The upper limit is an upper torquelimit, and the lower limit is a lower torque limit.

In one example, determining the target cadence based on the comparisonincludes identifying a first predetermined target cadence as the targetcadence when the identified torque is less than the lower torque limit,and identifying a second predetermined target cadence as the targetcadence when the identified torque is greater than the upper torquelimit. The second predetermined target cadence is greater than the firstpredetermined target cadence.

In one example, determining the target cadence based on the comparisonfurther includes when the identified torque is within the predeterminedtorque band, determining, by the processor, the target cadence based onthe identified torque.

In one example, determining the target cadence based on the identifiedtorque includes determining the target cadence using the identifiedtorque as an input to a linear function between the first predeterminedtarget cadence at the lower torque limit and the second predeterminedtarget cadence at the upper torque limit.

In one example, the determined cadence band has a first range when thetarget cadence is a first target cadence, and the determined cadenceband has a second range when the target cadence is a second targetcadence, the second target cadence being different than the first targetcadence. The second range is different than the first range.

In one example, the method further includes repeating the identifying,the comparing, the determining of the target cadence, the determining ofthe cadence band, and the controlling at a predetermined time interval.

In one example, the predetermined time interval is a first predeterminedtime interval. The method further includes receiving, by the processor,torque data from one or more torque sensors of the bicycle, storing, bya memory in communication with the processor, the received torque datain a torque data set, and repeating the receiving and the storing at asecond predetermined time interval. Identifying the torque at the crankarm of the bicycle includes averaging, by the processor, a subset of thetorque data set. The subset of the torque data set corresponds to apredetermined time period. The identified torque at the crank arm is theaveraged subset of the torque data set.

In one example, the method further includes identifying, by theprocessor, a transition between pedaling and coasting of the bicyclebased on the received torque data, and fixing, by the processor, thetarget cadence based on the identifying of the transition betweenpedaling and coasting of the bicycle.

In one example, the transition is a first transition. The method furtherincludes identifying, by the processor, a second transition based ondata of the torque data set. The second transition is between coastingand pedaling of the bicycle. The method further includes allowing, bythe processor, the target cadence to change based on the identifying ofthe second transition.

In one example, identifying the transition includes identifying a firsttorque value at a first time point and a second torque value at a secondtime point from the torque data set. The second time point is after thefirst time point. Identifying the transition further includesdetermining a difference between the first torque value and the secondtorque value, comparing the determined difference to a threshold torquedifference, and identifying the transition based on the comparison ofthe determined difference to the threshold torque difference.

In one example, the method further includes determining, by theprocessor, a power based on the identified torque. The comparingincludes comparing the determined power to a predetermined power band.The predetermined power band have an upper power limit and a lower powerlimit.

In one example, a controller for a bicycle includes a memory configuredto store a lower torque limit and an upper torque limit, and a processorin communication with the memory. The processor is configured toidentify a torque at a crank arm of the bicycle, compare the identifiedtorque to the lower torque limit and the upper torque limit, anddetermine a target cadence based on the comparisons. The processor isfurther configured to determine a cadence band based on the determinedtarget cadence, and control electronic shifting of the bicycle based onthe determined cadence band.

In one example, the control of the electronic shifting of the bicycleincludes the processor being further configured to compare a cadence ofthe bicycle to the determined cadence band, and actuate a motor of aderailleur of the bicycle for the electronic shifting of the bicyclewhen, based on the comparison, the cadence of the bicycle is outside ofthe determined cadence band.

In one example, the memory is further configured to store a firstpredetermined target cadence and a second predetermined cadence. Thedetermination of the target cadence based on the comparison includes theprocessor being further configured to identify the first predeterminedtarget cadence as the target cadence when the identified torque is lessthan the lower torque limit, and identify the second predeterminedtarget cadence as the target cadence when the identified torque isgreater than the upper torque . The second predetermined target cadenceis greater than the first predetermined target cadence. Thedetermination of the target cadence based on the comparison includes theprocessor being further configured to determine the target cadence basedon the identified torque when the identified torque is greater than thelower torque limit and less than the upper torque limit.

In one example, the memory is further configured to store a cadencefunction. The determination of the target cadence based on theidentified torque when the identified torque is greater than the lowertorque limit and the less than the upper torque limit includes theprocessor being further configured to determine the target cadence usingthe identified torque as an input to the cadence function.

In one example, the cadence function is a linear function.

In one example, the memory is further configured to store a plurality ofcadence bands corresponding to a plurality of torques, respectively. Theplurality of cadence bands include the cadence band, and the pluralityof torques include the identified torque. The determination of thecadence band includes the processor being further configured to identifythe cadence band from the plurality of stored cadence bands based on thedetermined target cadence.

In one example, the controller further includes one or more torquesensors configured to generate torque data. The processor is furtherconfigured to determine a torque value from the generated torque data ata predetermined time interval. The identification of the torque at thecrank arm of the bicycle includes an average of a subset of the torquedata set. The subset of the torque data set corresponds to apredetermined time period. The identified torque at the crank arm is theaveraged subset of the torque data set.

In one example, in a non-transitory computer-readable storage mediumthat stores instructions executable by one or more processors to controlelectronic shifting of a bicycle, the instructions include identifying atorque at a crank arm of the bicycle, determining a power based on theidentified torque, and comparing the determined power to a predeterminedupper power limit and a predetermined lower power limit. Theinstructions further include determining a target cadence based on thecomparisons, determining a cadence band based on the determined targetcadence, and controlling the electronic shifting of the bicycle based onthe determined cadence band. The controlling of the electronic shiftingof the bicycle includes actuating a motor of a derailleur of the bicyclefor the electronic shifting of the bicycle when a cadence of the bicycleis outside of the determined cadence band.

BRIEF DESCRIPTION OF THE DRAWINGS

Objects, features, and advantages of the present invention will becomeapparent upon reading the following description in conjunction with thedrawing figures, in which:

FIG. 1 is a side view of one example of an electric bicycle withautomatic shifting that may be controlled in accordance with theteachings of this disclosure;

FIG. 2 is a side view of one example of a rear derailleur;

FIG. 3 is a flow chart of an embodiment of a method for controlling abicycle;

FIG. 4 is a flow chart of an embodiment of a method for modifying anautomatic shifting mode;

FIG. 5 is a graph of cadence over input torque for one embodiment of themethod for modifying the automatic shifting mode of FIG. 4 ;

FIG. 6 is a flow chart of another embodiment of a method for modifyingan automatic shifting mode;

FIG. 7 is a graph of cadence over inclination for one embodiment of themethod for modifying the automatic shifting mode of FIG. 6 ;

FIG. 8 is a block diagram of an exemplary bicycle control system forimplementing methods of controlling a bicycle; and

FIG. 9 is a block diagram of an exemplary control device for use inimplementing methods of controlling a bicycle.

Other aspects and advantages of the embodiments disclosed herein willbecome apparent upon consideration of the following detaileddescription, wherein similar or identical structures have similarreference numerals.

DETAILED DESCRIPTION OF THE DISCLOSURE

A bicycle with an electric pedal assist motor capable of driving achainring independent of cranks (e.g., an ebike) is provided. Thebicycle may include crank cadence sensors and/or a power meter. Thecrank cadence sensors measure crank cadence and provide the measuredcrank cadence to an electric rear derailleur or a controller of thebicycle. The power meter measures torque generated by a rider and/orpower output by the rider (e.g., power input to the bicycle) andprovides the measured torque and/or the measured power output to theelectric rear derailleur or the controller.

For bicycle transmissions that utilize electronic shifting, as cadenceincreases, a controller running an automatic shifting algorithminitiates a gear shift. A rider of the bicycle may, however, prefer topedal at a lower cadence when riding at a leisurely pace and may preferto pedal at a higher cadence when riding aggressively. Further, therider of the bicycle may pedal at a higher cadence when seated comparedto when standing.

According to the present disclosure, automatic cadence band adjustmentis provided based on a sensed riding scenario (e.g., a rider engagementstatus). The sensed riding scenario may be based on sensor data from oneor more sensors of the bicycle. For example, a processor of the electricrear derailleur may receive data related to power input or torque at acrank arm of the bicycle, and the processor may increase a targetcadence for the automatic shifting under high power or torque (e.g.,greater than 35 Nm) and decrease the target cadence for the automaticshifting under low power or torque (e.g., less than 15 Nm).

As another example, the sensed riding scenario may be whether the rideris seated or standing. When the rider is seated, an increase in powermay result in a higher cadence, but when the rider stands, the cadencemay decrease with the increased power. The processor of the electricrear derailleur, for example, may receive data from any number ofdifferent types of sensors and determine whether the rider is sitting orstanding based on the received data. When the processor determines therider is sitting, the processor may increase the target cadence for theautomatic shifting with increasing power, but when the processordetermines the rider is standing, the processor may decrease the targetcadence for the automatic shifting with the increased power.

As the processor changes the target cadence for the automatic shifting,the processor may also change a cadence band that includes a lowercadence limit and an upper cadence limit. The cadence band may bechanged with the changing target cadence such that a range of thecadence band remains the same regardless of the target cadence.Alternatively, different ranges of the cadence band may be provided fordifferent target cadences for the automatic shifting, respectively.

As yet another example, the sensed riding scenario may be a transitionfrom pedaling to coasting and/or a transition from coasting to pedaling.The processor may detect the transition from pedaling to coasting andthe transition from coasting back to pedaling based on sensor data fromone or more sensors (e.g., a power meter and/or a wheel speed sensor) ofthe bicycle. The processor may pause changes to the target cadence basedon power input or torque at the crank arm of the bicycle, as describedabove, after the processor detects the transition from pedaling tocoasting, and may resume the changing of the target cadence after theprocessor detects the transition from coasting back to pedaling. Eventhough the torque on the crank arm is very low during the coasting, bypausing the changes to the target cadence, the target cadence remainsthe same while the bicycle is coasting.

As another example, the sensed riding scenario may be a technical orhigh power state (e.g., a technical state). For example, trail ridingand riding through rock gardens may involve intermittent pedaling atvarious torques. Typically, in the technical state, an easy gear thatresults in a high cadence is desired by the rider. The processor maydetect the technical state based on sensor data from one or more sensorsof the bicycle. For example, the processor may receive sensor data fromthe power meter and/or one or more other sensors of the bicycle (e.g.,an accelerometer, a gyroscope, and/or a lidar sensor) and determine thebicycle is in the technical state. The processor may set the targetcadence to a maximum value when the processor determines the bicycle isin the technical state.

As yet another example, the sensed riding scenario may be an inclinationof the bicycle. For example, the bicycle traveling uphill may result ina higher cadence, and the bicycle traveling downhill may result in alower cadence. The processor may determine the inclination of thebicycle based on sensor data from one or more sensors of the bicycle.For example, the processor may receive sensor data from the power meterand/or one or more other sensors of the bicycle (e.g., an accelerometerand/or a gyroscope) and determine the inclination of the bicycle. Theprocessor may increase a target cadence for the automatic shifting whenthe determined inclination of the bicycle is positive (e.g., the bicycleis traveling uphill) and decrease the target cadence for the automaticshifting when the determined inclination of the bicycle is negative(e.g., the bicycle is traveling downhill). In one embodiment, theincrease of the target cadence is scaled with grade until a maximumtarget cadence (e.g., 105 RPM) is reached, and the decrease of thetarget cadence is scaled with grade until a minimum target cadence(e.g., 65 RPM) is reached. In another embodiment, a predeterminedpositive offset is applied to the target cadence when the determinedinclination is negative or is less than a predetermined threshold, and apredetermined negative offset is applied to the target cadence when thedetermined inclination is positive or is greater than a predeterminedthreshold.

Changes to the target cadence for automatic shifting described above andbelow are additive. For example, an adjustment to the target cadencebased on input power may be added to an adjustment to the target cadencebased on an inclination of the bicycle. In one embodiment, however,there may be a global limit for the additive adjustments to the targetcadence for automatic shifting. For example, the added adjustments tothe target cadence may not exceed a predetermined limit (e.g., +/−15RPM).

Unlike automatic shifting of the prior art, in which automatic gearshifting is based only on cadence, in the present disclosure, the targetcadence and the corresponding cadence hysteresis band may be changedbased on any number of sensed riding scenarios. This helps preventunwanted shifting of gears and provides for a better riding experiencefor the rider.

A system control device may be configured so as to be integrated, orcoupled, with a bicycle to control bicycle components. The systemcontrol device may interface with electromechanically controlled bicyclecomponents so as to trigger an action, such as shifting a rear gear. Thesystem control device may include instructions configured to cause theelectromechanically controlled bicycle components to shift between gearsautomatically (i.e. without specific input or prompting from a rider ofthe bicycle) based on rider established, or otherwise determined,thresholds, values, parameters, and/or readings from one or more sensorsof the bicycle configured to detect characteristics of the bicycle.

Various embodiments of the invention will be described herein withreference to the drawings. It will be understood that the drawings andthe description set out herein are provided for illustration only and donot limit the invention as defined by the claims appended hereto and anyand all their equivalents. For example, the terms “first” and “second”,“front” and “rear”, “left” and “right” are used for the sake of clarityand not as terms of limitation. Moreover, the terms refer to bicyclemechanisms conventionally mounted to a bicycle and with the bicycleorientated and used in a standard fashion unless otherwise indicated.

It is to be understood that the specific arrangement and illustratedcomponents of the frame, front wheel, rear wheel, drivetrain, frontbrake, rear brake, and saddle are non-limiting to the disclosedembodiments. For example, while the front brake and the rear brake areillustrated as hydraulic disc brakes, hydraulic rim brakes arecontemplated and encompassed within the scope of the disclosure.Additionally, mechanical systems including mechanical rim brakes andmechanical disk brakes, as well as other electronic, hydraulic,pneumatic, and mechanical systems, or combinations thereof, such assuspension systems, are contemplated and encompassed within the scope ofthe present disclosure.

Turning now to the drawings, FIG. 1 generally illustrates a bicycle 100with which one or more system control devices 150 may be used toimplement a bicycle control system using the methods described herein.In this example, the bicycle 100 may be a mountain bicycle. In somecases, the bicycle 100 may be an e-bike. The bicycle 100 has a frame102, a handlebar 104 near a front end of the frame 102, and a seat orsaddle 106 for supporting a rider over a top of the frame 102. Thebicycle 100 also has a first or front wheel 108 carried by a front fork110 of the frame 102 and supporting the front end of the frame 102. Thebicycle 100 also has a second or rear wheel 112 supporting a rear end ofthe frame 102. The rear end of the frame 102 may be connected to a rearsuspension component 114. The bicycle 100 also has a drive train 116with a crank assembly 118 that is operatively coupled via a chain 120and a rear derailleur 122 to a rear cassette 124 near a rotation axis ofthe rear wheel 112. The crank assembly 118 includes two cranks 123 andtwo pedals 125 connected to the two cranks 123, respectively, onopposite sides of the frame 102 of the bicycle 100.

In the example shown, the rear derailleur 122 includes a power source(e.g., a battery) and a motor, and receives instructions (e.g.,wirelessly) from a controller 126 (e.g., a shifter or a centralcontroller) mounted, for example, to the handlebar 104 or the frame 102to shift gears on the rear cassette 124. In one embodiment, the rearderailleur 122 receives instructions from an e-bike control system 128(e.g., including one or more processors, control circuitry, and/or apower source 130; a system control device 150) to shift gears on therear cassette 124. The rear derailleur 122 shift gears using, forexample, the power source and the motor of the rear derailleur 122,based on the received instructions.

In one embodiment, the rear derailleur 122 is powered by a power sourceoutside of the rear derailleur 122. For example, the rear derailleur 122is powered by the power source 130 (e.g., a battery) of the e-bikecontrol system 128. In another embodiment, the rear derailleur 122 isalso connected to an input on the handlebar 104 (e.g., a shifter), forexample, via a shifter cable and shifts gears on the rear cassette 124based on movement of the shifter (e.g., by the rider), and thus theshifter cable.

The battery 130 of the e-bike control system 128 is also supported bythe frame 102 of the bicycle 100. For example, the battery 130 of thee-bike control system 128 is supported by a bottom tube 137 of the frame102 of the bicycle 100. One or more components (e.g., the controller126) of the bicycle 100 may be coupled with the power source 130 of thee-bike control system 128 via other wires, respectively.

The battery 130, for example, powers a drive unit 138 (e.g., includingan e-bike motor) that is operatively coupled to the crank assembly 118.In one embodiment, the drive unit 138 may also be powered by a separatebattery to provide access to e-bike controls when the battery 130 of thee-bike control system 128 is not attached to the bicycle 100.

The drive unit 138 is mounted to the frame 102 of the bicycle 100. Forexample, the drive unit 138 is mounted to the frame 102 of the bicycle100 with one or more bolts and threaded openings within the frame 102 ofthe bicycle 100. The drive unit 138 may be attached to the frame 102 inother ways. A crank axle 140 runs through an opening through the driveunit 138 and connects the two cranks 123 of the crank assembly 118.During operation, the rider rotates the two cranks 123 via the twopedals 125, rotating the crank axle 140. The crank assembly 118 and/orthe drive unit 138 may include sensors 141 configured to measure axlerotation and forces on the axle 140. At least some of the sensors 141may, for example, be disposed on and/or within the crank axle 140 and/orat least one of the two cranks 123. The crank axle 140 drives an outputring of the drive unit 138 in a forward drive direction but not in aback pedaling direction through the use of, for example, a one-wayclutch between the crank axle 140 and the output ring.

The measured axle rotation and the measured forces on the axle 140(e.g., by the sensors) may be used to control an electric drive motor146 (e.g., an assist motor) of the drive unit 138. The assist motor 146may directly or through the use of gears also drive rotation of theoutput ring. The output ring thus provides an output power to the drivetrain 116 that is a combination of rider input power and an output powerof the assist motor 146.

While the bicycle 100 depicted in FIG. 1 is a mountain bicycle and mayinclude suspension components, such as a shock absorbing front fork, thespecific embodiments and examples disclosed herein as well asalternative embodiments and examples may be implemented on other typesof bicycles. For example, the disclosed bicycle shifting control methodsmay be used on road bicycles, as well as bicycles with mechanical (e.g.,cable, hydraulic, pneumatic, etc.) and non-mechanical (e.g., wired,wireless) drive systems. For example, the illustrated handlebar 104involves an aero-bar configuration; however, the controller 126 and/orbicycle control system may be used with other types of handlebarassemblies as well, such as drop bars, bullhorn bars, riser bars, or anyother type of bicycle handlebar. For example the controller 126 may be alever integrated with a drop bar configuration. Also, while theembodiments described herein describe manual control devices attached tohandlebars, a person having experience in the art would recognize thepossible positioning of control devices at other areas of a bicycle,such as locations throughout the frame 102 or other locations. Thedisclosed bicycle shifting control methods may also be implemented onother types of two-, three-, and four-wheeled human powered vehicles aswell.

The front and/or forward orientation of the bicycle 100 is indicated bythe direction of the arrow “A” in FIG. 1 . As such, a forward directionof movement of the bicycle 100 is indicated by the direction of thearrow A.

The drive unit 138 may include internal electronics to control operationof the assist motor 146, measure axle inputs, measure an inclination ofthe bicycle 100, measure an acceleration of the bicycle 100, measure atemperature of the bicycle 100, and/or reduce a voltage of the battery130 of the e-bike control system 128 to accommodate and power externaldevices if lower voltages are required. For example, the internalelectronics of the drive unit 138 may include one or more of the sensors141 (e.g., one or more power meters, cadence sensors, wheel speedsensors, speed sensors, GPS sensors, inclination sensors, directionsensors, seat pressure sensors, mechanical switches, pedal forcesensors, accelerometers, gyroscopes, lidar sensors, and/or othersensors). Additional, fewer, and/or different internal electronics maybe provided within the drive unit 138. At least one of the sensors 141may alternatively or additionally be located elsewhere on or in thebicycle 100 (e.g., an accelerometer on or in the rear suspensioncomponent 114).

A controller of the drive unit 138 (e.g., an e-bike central controlsystem or controller; a system control device 150) may be disposed on ahousing of the drive unit 138 and wired to the internal electronics ofthe drive unit 138. Alternatively or additionally (e.g., as part of asame housing), the e-bike controller may be supported by a same housingas the power source 130. The e-bike controller may be made of a materialthrough which wireless control signals may pass. In one embodiment, thee-bike controller is wired to the e-bike control system 128.

The e-bike controller may control power from the power source 130 tocomponents on the bicycle 100 such as, for example, the electric drivemotor 146 of the drive unit 138. The e-bike controller may control powerto other and/or different components on the bicycle 100. The e-bikecontroller may send signals (e.g., instructions) to and/or receive data(e.g., instructions and/or sensor data) from components on the bicycle100 such as, for example, the rear derailleur 122, a suspension system,and/or a seat post assembly to actuate and/or control components of thebicycle 100.

In other embodiments, the e-bike controller may be located in otherlocations (e.g., mounted on the handlebar 104) on the bicycle 100 or,alternatively, may be distributed among various components of thebicycle 100, with routing of a communication link to accommodatenecessary signal and power paths. For example, a control unit 152 (e.g.,acting as the e-bike controller; a system control device 150) may bemounted to the handlebar 104 for actuating a motor of the rearderailleur 122 and operating the rear derailleur 122 for executing gearchanges and gear selection. The control unit 152 and/or the e-bikecontroller, however, may be located anywhere on the bicycle 100 or,alternatively, may be distributed among various components of thebicycle 100, with routing of a communication link to accommodatenecessary signal and power paths. In one example, the e-bike controllermay be integrated with the rear derailleur 122 to communicate controlcommands between components. The control unit 152 and/or the e-bikecontroller may also be located other than on the bicycle 100, such as,for example, on a rider's wrist or in a jersey pocket. The communicationlink may include wires, may be wireless, or may be a combinationthereof. The control unit 152 and/or the e-bike controller may include aprocessor, a communication device (e.g. a wireless communicationdevice), a memory, and one or more communication interfaces.

A controller of the rear derailleur 122 and/or the e-bike controllerwirelessly actuates a motor module of the rear derailleur 122 and/or theelectric drive motor 146 and operates the rear derailleur 122 forexecuting gear changes and gear selection. Additionally oralternatively, the controller of the rear derailleur 122 and/or thee-bike controller may be configured to control gear shifting of a frontgear changer.

Data from the drive unit 138 (e.g., sensors 141 of the drive unit 138)and/or the crank assembly 118 (e.g., sensors 141 of the drive unit 138)may be transmitted to the e-bike controller. The data may be transmittedvia one or more wired connections and/or wirelessly. For example, acrank-based power meter generates data representing input torque and/orpower applied to one of the cranks 123 and transmits the data to thee-bike controller.

All the communication between the one or more system control devices 150of the bicycle 100 (e.g., the e-bike control system 128) and eachcomponent is achieved through wired or wireless communication. There maybe discrete control with individual wires from the respective systemcontrol device 150 to each component to be controlled by the respectivesystem control device 150 (e.g., a motor of the rear derailleur 122), orat least one of the system control devices 150 may use a controller areanetwork (“CAN”) bus configured to allow microcontrollers and devices tocommunicate with each other in applications.

The data transmitted to the system control device 150 may be used forautomatic shifting within the methods described herein. Referring toFIG. 2 , the rear derailleur 122 is depicted in these examples as awireless, electrically actuated rear derailleur mountable to the frame102 of the bicycle 100. The electric rear derailleur 122 has a basemember 200 (e.g., a b-knuckle) that is mountable to the frame 102. Alinkage 201 has two links, an outer link 202 and an inner link 204, thatare pivotally connected to the base member 200. A movable member 206(e.g., a p-knuckle) is connected to the linkage 201. A chain guideassembly 208 (e.g., a cage) has a cage plate 210 with a proximal end 212that is pivotally connected to a part of the movable member 206, asdescribed further below.

A motor module 214 is carried on the electric rear derailleur 122 andhas a battery 216. The battery 216 supplies power to the motor module214. In one example, as illustrated in FIG. 2 , the motor module 214 islocated in the base member 200. However, the motor module 214 mayinstead be located elsewhere, such as in the outer link 202 or the innerlink 204, or in the movable member 206. The motor module 214 mayinclude, though not shown herein, a gear mechanism or transmission. Asis known in the art, the motor module 214 and gear mechanism may becoupled with the linkage 201 to laterally move the cage plate 210 andthus switch the chain 120 among the rear sprockets on the rear cassette124.

The cage plate 210 also has a distal end 218 that carries a tensionercog or wheel 220 (e.g., a tensioner wheel). The tensioner wheel 220 alsohas teeth 222 around a circumference. The cage plate 210 is biased in achain tensioning direction to maintain tension in the chain 120. Thechain guide assembly 208 may also include a second cog or wheel, such asa guide wheel 224 disposed nearer the proximal end 212 of the cage plate210 and the movable member 206. In operation, the chain 120 is routedaround a rear sprocket of the rear cassette 124. An upper segment of thechain 120 extends forward to a chainring of the crank assembly 118 andis routed around the chainring. A lower segment of the chain 120 returnsfrom the chainring to the tensioner wheel 220 and is then routed forwardto the guide wheel 224. The guide wheel 224 directs the chain 120 to therear cassette 124. Lateral movement of the cage plate 210, the tensionerwheel 220, and the guide wheel 224 may determine the lateral position ofthe chain 120 for alignment with a selected rear sprocket of the rearcassette 124.

The battery 216 may instead be an alternate power supply or power sourceand may operate other electric components of the bicycle 100 within alinked system. The battery 216 or other power supply may also be locatedin other positions, such as attached to the frame 102. Further, multiplepower supplies may be provided, which may collectively or individuallypower the electric components of the system, including the rearderailleur 122, such as the electric drive motor 146. In this example,however, the battery 216 is configured to be attached directly to therear derailleur 122, and to provide power only to the components of therear derailleur 122.

FIG. 3 illustrates a flow chart of an embodiment for a method 300 ofcontrolling a bicycle, particularly as related to an automatic, orautomatic shifting, mode of a bicycle and/or bicycle component(s). FIG.4 illustrates a flow chart of an embodiment of a method 400 forcontrolling an automatic shifting mode of a bicycle. FIG. 6 illustratesa flow chart of another embodiment of a method 600 for controlling anautomatic shifting mode of a bicycle. As presented in the following,acts may be performed using any combination of the components indicatedin FIGS. 1, 2, 8 , and/or 9. For example, the following acts may beperformed by a processor, as integrated with a system control device 150that may be integrated with one or more bicycle components 138, 122,and/or 102. Additional, different, or fewer acts may be provided. Theacts are performed in the order shown or other orders. The acts may alsobe repeated and/or performed at multiple times throughout the method.For example, a cadence band for control of electronic shifting may beadjusted based on a riding scenario (e.g., an effort-based riderengagement status; hereinafter, a rider engagement status) for thebicycle. The rider engagement status for the bicycle may be, forexample, an input torque at a crank arm of the bicycle, whether therider is standing or seated, and/or an inclination of the bicycle.

An automatic shifting system may be configured, such as with appropriatesensors or other devices, to monitor and/or detect system parameters tobe used for system control. For example, the automatic shifting systemmay use one or more of cadence, power, and/or speed measurement tocontrol shifting of the transmission.

Some initial parameters that may, for example, be established includeany combination of the following. Cadence is a rotation of the cranks asmeasured in, for example, revolutions per minute (“RPM”). Defaultcadence or nominal cadence is a preferred or target cadence establishedby, for example, the rider during or prior to riding. Default torque ornominal torque is a preferred torque established by, for example, therider during or prior to riding. A cadence band is a set range ofcadences where the system will stay within a same gear. The cadence bandmay include an upper cadence limit and/or a lower cadence limit. Thesystem may shift outboard (e.g., to a harder gear) when the measuredcadence is higher than the upper cadence limit and may shift inboard(e.g., to an easier gear) when the measured cadence is lower than thelower cadence limit. A minimum target cadence is a target cadence for aneasier ride (e.g., a casual ride), as defined by an input torque to acrank arm of the bicycle by the rider. A maximum target cadence is atarget cadence for a harder ride (e.g., a technical ride), as defined bythe input torque. An intermediate target cadence is a cadence for amedium ride (e.g., an endurance fitness ride), as defined by the inputtorque. The intermediate target cadence is greater than the minimumtarget cadence and less than the maximum target cadence. A lower torquelimit is the torque below which the minimum target cadence is set. Anupper torque limit is the torque above which the maximum target cadenceis set. The minimum target cadence, the maximum target cadence, and theintermediate target cadence may be established by, for example, therider during or prior to riding. A target cadence modifier is a modifierto the target cadence based on the rider engagement status for thebicycle. An input torque-based target cadence modifier may include amaximum target cadence modifier and/or a minimum target cadencemodifier. For example, from an intermediate target cadence, adding amaximum target cadence modifier (e.g., a positive value) to the targetcadence may provide the maximum target cadence, and adding a minimumtarget cadence modifier (e.g., a negative value) to the target cadencemay provide the minimum target cadence. Averaging period defines anamount of time over which torque is averaged for use as an input in amethod for controlling an automatic shifting mode of the bicycle.

The parameters are used, either independently or in combination, by thesystem control device to control the automatic shifting system of thebicycle, for example as is indicated in the flow charts provided inFIGS. 3 and 4 .

In act 302, the system control device determines if one or moreautomatic mode entry conditions are met. The automatic mode entryconditions may be any criteria operable to indicate an intent to enteran automatic mode of a component of the bicycle. In an embodiment, oneor more buttons may be enacted (e.g. depressed or actuated) for a periodof time. The buttons may be multiple purpose buttons, such as electronicshifting devices, configured as levers, plunger type buttons, rockertype buttons, or any other electronic actuation device. For example, thebuttons may be typically used to indicate that a component, such as oneor more bicycle derailleurs, is to shift a chain of the bicycle to adifferent gear, but when actuated in combination for at least threeseconds, the system control device causes the component to enter intoautomatic mode. Other actuation time periods and/or other multi-purposebutton based initiation techniques may also be used. For example,multiple system control buttons may be provided, such as manual shiftcontrol devices for electronic derailleurs.

In an embodiment, individual buttons of the multi-purpose buttons mayhave three or more actuating effects. In an embodiment, at least onebutton is provided for controlling a rear derailleur of a bicycle. Afirst button actuated (e.g., in a first direction) causes a rearderailleur to change the bicycle chain to a larger sized sprocket. Thefirst button actuated in a second way (e.g., in a second direction) or asecond button actuated independently causes the rear derailleur tochange the bicycle chain to a smaller sized sprocket. The first buttonand/or the second button actuated for a length of time causes the systemcontrol device to enter into an automatic shifting mode. For example,the length of time may be three seconds. In an embodiment, the firstbutton and/or the second button may provide a button release signal whenthe respective button is released by a user, and the absence of a buttonrelease signal within a period of time may trigger entry into anautomatic shifting mode of the system control device.

In another embodiment, a bicycle speed may be monitored by the systemcontrol device using a speed determination device, such as a wheel speedsensor. When the system control device determines that the bicyclespeed, such as is indicated by a wheel speed in this example, is above aminimum value, the system control device causes the component to enterinto automatic mode.

In act 304, cadence and/or speed parameters are established. The cadenceand/or speed parameters may be established using any technique. Thespeed and/or cadence parameters are used by the system control device todetermine when an automatic adjustment, such as a shift using aderailleur, is to be enacted. In an embodiment, one or more cadenceparameters are determined by the system control device using a cadencesensor. The system control device measures a cadence of the bicycle fora period of time, and establishes a value derived from the measuredcadence over that time as the cadence parameter. The derived value maybe any value characteristic of the cadence over the period of time. Forexample, the derived value may be an average, mode, or mean value forthe cadence over the period of time. Also, the period of time may be anestablished or referenced period of time. In an embodiment, the periodof time is equal to a period of time a button is actuated. For example,if two buttons are actuated for three seconds to cause the systemcontrol device to enter into an automatic mode, the system controldevice records values using the cadence sensor, during the time the twobuttons are actuated to gather data for deriving the cadence value toestablish.

In an embodiment, the system control device gathers cadence data over aperiod of time and determines multiple values, such as a mean and astandard deviation of the cadence over that time. The mean value and thestandard deviation value may be used to establish an operations rangefor the automatic mode. For example, the upper cadence limit and thelower cadence limit may be established from the mean value and thestandard deviation value to determine characteristics of automaticshifting mode shifts. The upper cadence limit and the lower cadencelimit may also be determined using other techniques. For example, anaverage cadence may be determined over a period of time; the uppercadence limit may be established as a pre-set cadence value higher thanthe average cadence, and the lower cadence limit may be established as apreset cadence value lower than the average cadence. The preset valuesmay be the same or different for the setting of the upper cadence limitand the lower cadence limit.

In another embodiment, one or more predetermined cadence parameters aresaved in a memory of the system control device, and the one or morepredetermined cadence parameters are established as the cadence and/orspeed parameters. For example, a set of an upper cadence limit and alower cadence limit may be manually input into the memory before ridingor may be stored in the memory during riding (e.g., a prior bicycleride) of the system control device.

In act 306, the system control device compares active cadence and/orspeed parameters to cadence and/or speed parameters established in act304. The comparison may be executed using any technique that may qualifyan active cadence and/or speed of the bicycle against the establishedcadence and/or speed parameters. In an embodiment, a current measuredspeed and/or cadence value is compared to the upper cadence limit andthe lower cadence limit established in act 304. For example, the uppercadence limit and the lower cadence limit may be established in act 304,and a trailing time average of cadence values recorded for a period oftime (e.g., the last one second) may be compared against the uppercadence limit and the lower cadence limit. In other words, the systemcontrol device may determine whether the trailing time average ofcadence values is within a predetermined cadence band defined by theupper cadence limit and the lower cadence limit, and if the trailingtime average of cadence values is outside the predetermined cadenceband, determine whether the trailing time average of cadence values isgreater than the upper cadence limit or less than the lower cadencelimit. This comparison may be repeated periodically or conductedcontinuously by the system control device during automatic modeoperation.

In act 308, the system control device adjusts a component based on thecomparison performed in act 306. In an embodiment, the system controldevice causes the rear derailleur to change a gear of the bicycle basedon the comparison performed in act 306. For example, the system controldevice shifts to an easier gear when a detected cadence reaches and/orgoes below the lower cadence limit, and/or the system control deviceshifts to a harder gear when the detected cadence reaches and/or goesabove the upper cadence limit.

In act 310 the system control device determines if one or more automaticmode modification conditions (e.g., a change in input torque at a crankarm of the bicycle) are met. Automatic mode modification conditions areconditions that when met trigger an altering or change of an operatingparameter of the automatic mode. In an embodiment, the automatic modemodification conditions are conditions that, when met subsequent to theestablishment of cadence and/or speed parameters in act 304, trigger analtering or change of the operating parameter of the automatic mode. Inan embodiment, multiple automatic mode modification conditions are usedto alter or change the operating parameters of the automatic mode.Further, detecting and/or determining the multiple modificationconditions (act 310), and subsequent modification of automatic mode (act312), as described further below, may occur at different positions ofthe indicated sequence. For example, the determining and/or modifyingmay occur after the establishment of the cadence and/or speed parameters(act 304), but before the comparing of the active cadence and/or speed(act 306).

Different actions and/or measured values may be an automatic modemodification condition. In an embodiment, operating a manual controlthat is not necessary for automatic mode may be an automatic modemodification. For example, a button depression, such as a depression ofa shifting multi-use button described above, may be an automatic modemodification condition. While the system control device is operating inautomatic mode (e.g., causing at least one bicycle shifting component toshift gears based on cadence and/or speed parameters), there is no needto manually depress a shifting button to indicate a shift. A manualshift button depression during the automatic mode operation may beinterpreted as indicating intent to change a parameter of the automaticmode, such as the system control device disengaging or pausing automaticmode.

Other actions and/or measured values may be automatic mode modificationconditions. In an embodiment, one or more cadence values are automaticmode modification conditions. For example, a cadence sensor, such as acrank or crank arm sensor, may be used to provide a bicycle cadence tothe system control device, and when the cadence value indicated by thecadence sensor drops below the lower cadence limit or rises above theupper cadence limit (e.g., initiating a gear change within the automaticmode), this measured value or initiated action (e.g., gear change) maybe an automatic mode modification condition.

In act 312 the control device modifies the automatic mode of thecomponent based on the determination in act 310. The modification may beto any operational parameter of the automatic mode. For example, themodification may be to the upper cadence limit and/or the lower cadencelimit, or other operational parameters. In an embodiment, a modificationcondition involving a depression of a shift button during automatic modeoperation may cause the system control device to increase the uppercadence limit and/or decrease the lower cadence limit.

In an embodiment, a modification condition involving a slow speed duringautomatic mode operation may cause the system control device to pause orend the automatic mode operation. In an embodiment, a modificationcondition involving a slow cadence during automatic mode operation maycause the system control device to pause or end the automatic modeoperation. Any parameter described herein may be modified based on thedetermination and/or detection of any particular modification conditiondescribed herein.

In an embodiment, subsequent to, or concurrent with, modifying anautomatic mode parameter (e.g. modifying the lower cadence limit and/orthe upper cadence limit) (act 312), the system control device continuesto operate in the automatic mode with the modified parameters.

Further description of the provided functions, automatic modeparameters, modification conditions, and other embodiments of thecontrol system are described below. These functions, automatic modeparameters, and modification conditions may be implemented in anembodiment in any combination or as specifically described herein.

FIG. 4 illustrates a flow chart for an embodiment of a method 400 formodifying an automatic shifting mode. In the embodiment shown in FIG. 4, an instantaneous cadence may be set, or established, upon starting orinitiating automatic mode. In the embodiment, automatic shifting startswith pushing or otherwise actuating an up shift button and/or a downshift button for a period of time, such as three seconds. This time isvariable and may be anything longer than a normal shift time. The systemcontrol device records the cadence of the rider during the threeseconds, for example. The system control device sets the upper cadencelimit and the lower cadence limit (e.g., a cadence band and a cadencerange). The cadence is measured and compared with the cadence band, andthe system control device may shift gears based on the comparison (e.g.,if the measured cadence is outside of the cadence band). One or moreautomatic mode parameters may be modified based on a comparison of inputtorque identified at a crank arm of the bicycle to one or morethresholds (e.g., modification conditions).

In act 402, the system control device (e.g., a processor the systemcontrol device 150) identifies a torque at a crank arm of a bicycle. Forexample, the system control device determines an input torque on a crankarm of the bicycle based on data from one or more sensors of thebicycle. The data from the one or more sensors may be data from anynumber of different types of sensors including, for example, one or moretorque sensors, one or more strain gauges, and/or a power meter. Thesystem control device may identify and/or receive data from other typesof sensors to determine the input torque on the crank arm. In oneembodiment, the determined input torque on the crank arm is a torque ata particular instance in time. In another embodiment, the system controldevice determines an average input torque on the crank arm based on datafrom the one or more sensors over a period of time (e.g., over theaveraging period). For example, the system control device determines thetorque at the crank arm of the bicycle from torque data generated by theone or more sensors of the bicycle at a predetermined time interval(e.g., a sampling interval; every 500 ms, 100 ms, 50 ms, 10 ms) andstores the determined torque and/or the torque data within a torque dataset in a memory of the system control device. The system control deviceaverages a subset of the torque data set. The subset of the torque dataset corresponds to, for example, the averaging period (e.g., threeseconds).

In act 404, the system control device compares the identified torque ora parameter based on the identified torque to a predetermined band. Forexample, the predetermined band is a predetermined torque band, and thesystem control device compares the identified torque to thepredetermined torque band. The predetermined torque band, for example,has an upper limit (e.g., an upper torque limit) and a lower limit(e.g., a lower torque limit). The comparison of the identified torque tothe predetermined torque band includes, for example, the system controldevice determining whether the identified torque is within thepredetermined torque band or outside of the predetermined torque band.In other words, the system control device determines, for example,whether the identified torque is greater than the lower torque limit andless than the upper torque limit, the identified torque is less than orequal to the lower torque limit, or the identified torque is greaterthan or equal to the upper torque limit.

In one embodiment, the parameter is input power at the crank arm, andthe system control device identifies the input power at the crank armand compares the identified input power to a predetermined input powerband. The predetermined input power band has, for example, an upperlimit (e.g., an upper input power limit) and a lower limit (e.g., alower input power limit). The comparison of the identified input powerto the predetermined input power band includes, for example, the systemcontrol device determining whether the identified input power is withinthe predetermined input power band or outside of the predetermined inputpower band. In other words, the system control device determines, forexample, whether the identified input power is greater than the lowerinput power limit and less than the upper input power limit, theidentified torque is less than or equal to the lower input power limit,or the identified input is greater than or equal to the upper inputpower limit.

In one embodiment, the identification of the input power at the crankarm includes the system control device receiving data representing theinput power at the crank arm from one or more sensors (e.g., a powermeter) of the bicycle. In another embodiment, the identification of theinput power at the crank arm includes the system control devicereceiving data representing cadence (e.g., an average cadence over aperiod of time, such as the averaging period) of the crank arm of thebicycle from one or more sensors of the bicycle (e.g., one or more wheelspeed sensors, one or more cadence sensors, and/or a power meter) anddata representing input torque (e.g., an average torque over the periodof time, such as the averaging period) at the crank arm of the bicyclefrom one or more sensors of the bicycle (e.g., one or more torquesensors, one or more strain gauges, and/or a power meter), andcalculating the input power at the crank arm based on the datarepresenting cadence of the crank arm and the data representing torqueat the crank arm.

In act 406, the system control device determines a target cadence basedon the comparison. For example, the system control device determines thetarget cadence based on the comparison of the identified torque to thepredetermined torque band. Based on the comparison, when the systemcontrol device determines the identified torque is less than the lowertorque limit (or less than or equal to the lower torque limit), thesystem control device determines the target cadence to be a firstpredetermined target cadence (e.g., the minimum target cadence); whenthe system control device determines the identified torque is greaterthan the upper torque limit (or greater than or equal to the uppertorque limit), the system control device determines the target cadenceto be a second predetermined target cadence (e.g., the maximum targetcadence). The second predetermined target cadence is greater than thefirst predetermined target cadence. The first predetermined targetcadence and the second predetermined target cadence may be stored in thememory of the system control device and may be accessed by a processorof the system control device as part of the determination of the targetcadence. The first predetermined target cadence and the secondpredetermined cadence may be stored in the memory of the system controldevice during or after manufacture of the system control device and/ormay be set and stored in the memory of the system control device by arider or another user.

The minimum target cadence may represent a lowest target cadence usedduring automatic shifting or may represent a largest allowabletorque-based decrease in target cadence. For example, the minimum targetcadence may be set when the rider is on a casual bicycle ride and notriding for fitness. Such a rider engagement status (e.g., the casualbicycle ride) may be identified by the system control device based onthe torque identified in act 402, for example. For example, when therider is generating less than 15 Nm of input torque at the crank arm(e.g., the lower torque limit; as measured by one or more sensors of thebicycle), the system control device may determine and set the targetcadence to be 75 RPM (e.g., the minimum target cadence). Other valuesmay be used (e.g., set by the rider) for the lower torque limit and/orthe minimum target cadence.

The maximum target cadence may represent a maximum target cadence usedduring automatic shifting or may represent a largest allowabletorque-based increase in target cadence. For example, the maximum targetcadence may be set when the rider is on a hard sustained climb or iswithin a rock garden and/or in a technical ride. Such a rider engagementstatus (e.g., the hard sustained climb or the technical ride) may beidentified by the system control device based on the torque identifiedin act 402, for example. For example, when the rider is generating morethan 35 Nm of input torque at the crank arm (e.g., the upper torquelimit; as measured by one or more sensors of the bicycle), the systemcontrol device may determine and set the target cadence to be 95 RPM(e.g., the maximum target cadence). Other values may be used (e.g., setby the rider) for the upper torque limit and the and/or the maximumtarget cadence.

Based on the comparison, when the system control device determines theidentified torque is within the predetermined torque band (e.g., greaterthan the lower torque limit (or greater than or equal to the lowertorque limit) and less than the upper torque limit (or less than orequal to the upper torque limit)), the system control device determinesthe target cadence based on the torque identified in act 402. Forexample, the torque identified in act 402 is input into a function(e.g., a cadence function) between the lower torque limit at the minimumtarget cadence, and the upper torque limit at the maximum targetcadence. In one embodiment, the function is a linear function. In otherembodiments, non-linear functions may be used. Parameters for thefunction and/or the function may be stored in the memory of the systemcontrol device, and the system control device may input the torqueidentified in act 402 into the function to determine the target cadence(e.g., an intermediate target cadence).

An intermediate target cadence may be a variable target cadence betweenthe lowest target cadence and the highest target cadence used duringautomatic shifting. For example, an intermediate target cadence may beset when the rider is an endurance fitness effort. Such a riderengagement status (e.g., the endurance fitness effort) may be identifiedby the system control device based on the torque identified in act 402,for example. For example, when the rider is generating more than 15 Nmof input torque at the crank arm (e.g., the lower torque limit; asmeasured by one or more sensors of the bicycle) but less than 35 Nm(e.g., the upper torque limit; as measured by one or more sensors of thebicycle), the system control device may determine and set the targetcadence to be a cadence between 75 RPM (e.g., the minimum targetcadence) and 95 RPM (e.g., the maximum target cadence) based on thetorque identified in act 402 input into a function. Other values may beused (e.g., set by the rider) for the lower torque limit, the uppertorque limit, the minimum target cadence, and/or the maximum targetcadence.

FIG. 5 is an exemplary plot of cadence over input torque by a rider. T₁represents the lower torque limit, and T₂ represents the upper torquelimit. The system control device may determine the target cadence forautomatic shifting based on the functions illustrated in FIG. 5 . Whenthe identified torque is less than the lower torque limit T₁, the systemcontrol device determines the target cadence to be the minimum targetcadence C_(T, MIN). When the identified torque is greater than the uppertorque limit T₂, the system control device determines the target cadenceto the maximum target cadence C_(T, MAX). When the identified torque isgreater than the lower torque limit T₁ and less than the upper torquelimit T₂, the system control device determines the target cadence byinputting the identified torque into the function (e.g., linearfunction) in FIG. 5 between the lower torque limit T₁ and the uppertorque limit T₂.

A difference between the maximum target cadence and the minimum targetcadence may be defined as a target cadence modifier. In one embodiment,the target cadence modifier may be broken up into a maximum targetcadence modifier and a minimum target cadence modifier. The rider, forexample may set and the memory of the system control device may storethe target cadence modifier, the maximum target cadence modifier, and/orthe minimum target cadence modifier. In one embodiment, a default targetcadence corresponds to the minimum target cadence, and the systemcontrol device determines the maximum target cadence by adding thetarget cadence modifier to the default target cadence. For example, thetarget cadence modifier is 20 RPM and the default target cadence is 75RPM, resulting in the maximum target cadence being 95 RPM. Other valuesmay be provided. In another embodiment, the default target cadence is anintermediate target cadence (e.g., at a nominal or default torque). Thesystem control device adds the maximum target cadence modifier to thedefault target cadence and adds or subtracts the minimum target cadencemodifier to the default target cadence to provide the maximum targetcadence and the minimum target cadence, respectively. For example, themaximum target cadence modifier is 6 RPM, the minimum target cadencemodifier is −5 RPM, and the default target cadence is 85 RPM, resultingin the maximum target cadence being 91 RPM and the minimum targetcadence being 80 RPM. Other values may be provided.

In one embodiment, in which input power is identified and compared tothe predetermined input power band in act 404, the system control devicedetermines the target cadence in a similar way as described above withreference to the identified torque, but using the identified input powerinstead of the identified torque. In other words, when the identifiedinput power is less than the lower input power limit, the system controldevice identifies the minimum target cadence as the target cadence. Whenthe identified input power is greater than the upper input power limit,the system control device identifies the maximum target cadence as thetarget cadence. When the identified input power is greater than thelower input power limit and less than the upper input power limit, thesystem control device determines the target cadence based on theidentified input power. For example, the system control devicedetermines the target cadence using the identified input power as aninput into a function. The function may be linear or non-linear.

In act 408, the system control device determines a cadence band based onthe target cadence determined in act 406. The cadence band includes anupper cadence limit and a lower cadence limit. The system control devicemay determine the upper cadence limit by adding a predetermined cadenceupper limit modifier (e.g., upper limit modifier) to the target cadencedetermined in act 406, and may determine the lower cadence limit bysubtracting (e.g., a positive value) or adding (e.g., a negative value)a predetermined cadence lower limit modifier (e.g., lower limitmodifier) from/to the target cadence determined in act 406. For example,the upper limit modifier is 10 RPM, and the lower limit modifier is 8RPM. Other values for the upper limit modifier and the lower limitmodifier may be used. The upper limit modifier and the lower limitmodifier may be different or the same.

The upper limit modifier and the lower limit modifier may be stored inthe memory of the system control device. The upper limit modifier andthe lower limit modifier may be set and stored in the memory duringmanufacture of the system control device or the bicycle, aftermanufacture of the system control device or the bicycle, and/or by auser of the bicycle. The upper limit modifier and the lower limitmodifier may be the same for each target cadence and/or identifiedtorque or may be different for at least some target cadences and/oridentified torques. For example, the determined cadence band may have afirst range (e.g., 20 RPM) when the target cadence is a first targetcadence (e.g., 85 RPM; corresponding to a first input torque) that isgreater than a second range (e.g., 18 RPM) when the target cadence is asecond target cadence (e.g., 75 RPM; corresponding to a second inputtorque).

In one embodiment, the memory of the system control device stores upperlimit modifiers, lower limit modifiers, upper cadence limits, lowercadence limits, or any combination thereof for a number of differenttarget cadences and/or identified input torques, and the system controldevice identifies an upper limit modifier, a lower limit modifier, anupper cadence limit, a lower cadence limit, or any combination thereofbased on a cadence or the input torque identified in act 402.

In act 410, the system control device identifies a cadence of the crankarm of the bicycle. For example, the system control device determines acadence (e.g., an average cadence over a period of time, such as theaveraging period) of the crank arm of the bicycle based on data from oneor more sensors (e.g., a cadence sensor or a power meter). As anotherexample, the system control device determines the cadence of the crankarm of the bicycle based on wheel speed data received from one or morewheel speed sensors of the bicycle. In one embodiment, the systemcontrol device estimates the cadence of the crank arm of the bicyclebased on a wheel speed determined from the wheel speed data and acurrent gear ratio.

In act 412, the system control device determines whether the bicycle isto be shifted. For example, the system control device compares thecadence of the crank arm determined in act 410 to the cadence banddetermined in act 408. In other words, the system control device maydetermine whether the determined cadence of the crank arm is within oroutside of the determined cadence band.

If the system control device determines a gear shift is needed based on,for example, the comparison of the determined cadence to the determinedcadence band (e.g., the determined cadence is outside of the determinedcadence band), the method 400 moves to act 414. If the system controldevice determines a gear shift is not needed based on, for example, thecomparison (e.g., the determined cadence is within the adjusted cadenceband), the method 400 may return to act 402.

While the determined cadence is within determined cadence band, themethod may execute acts 402-412 once every predetermined period (e.g.,an update period; every 500 ms, 200 ms, 100 ms, 50 ms). The updateperiod may be the same or different than the sampling period. In oneembodiment, the input torque is identified in act 402 a number of times(e.g., five or ten times) for each update period.

In act 414, the system control device generates a gear shift commandbased on the comparison in act 412 (e.g., when the determined cadence isoutside the adjusted cadence band). If, based on the comparison, thedetermined cadence is less than the lower cadence limit of thedetermined cadence band, the system control device may generate a gearshift command for an inboard gear shift (e.g., to an easier gear); if,based on the comparison, the determined cadence is greater than theupper cadence limit of the determined cadence band, the system controldevice may generate a gear shift command for an outboard gear shift(e.g., to a harder gear). The gear shift command may include any numberof different types of data including, for example, instructions for amotor of the rear derailleur to turn on, a direction of rotation for themotor, a length of time the motor is to remain on, and/or other data.

In one embodiment, a motor of the bicycle is actuated based on the gearshift command generated in act 414. For example, the system controldevice actuates a motor of the rear derailleur of the bicycle to movethe rear derailleur and a chain supported by the rear derailleur toexecute the gear shift identified within the gear shift commandgenerated in act 414. Alternatively or additionally, the system controldevice actuates a drive unit such as an e-bike motor. After the gearshift initiated in act 414 is executed, the method 400 returns to act402.

In one embodiment, in parallel with the method 400, the system controldevice may monitor whether the bicycle is coasting (e.g., not beingpedaled or being pedaled very little, such as less than 10 RPM and/orwith an input torque less than 2 Nm). For example, based on the inputtorque identified in act 402, the cadence identified in act 410, and/orother sensor data (e.g., wheel speed data), the system control devicemay identify a first transition. The first transition may be atransition between pedaling and coasting of the bicycle. When the systemcontrol device identifies the first transition, the system controldevice fixes the target cadence. In other words, the system controldevice does not set the target cadence based on the target cadencedetermined in act 406 after the first transition is identified. Instead,the target cadence is set to the most recently determined target cadenceprior to the identification of the first transition. In other words, thetarget cadence is set to the most recently determined target cadence inact 406 prior to the identification of the first transition. Anydetermination made in act 406 after the first transition is identifiedis thus overridden. Alternatively, the method 400 is paused once thefirst transition is identified, but the system control device continuesto identify the torque at the crank arm of the bicycle, identify thecadence of the crank arm of the bicycle, and/or identify a wheel speedof the bicycle.

The system control device may identify the first transition in anynumber of ways. For example, the system control device may compare theidentified torque at the crank arm to a predetermined coasting torquethreshold (e.g., 2 Nm), and identify the first transition when theidentified torque is, for example, less than or equal to thepredetermined coasting torque threshold. Alternatively or additionally(e.g., as confirmation), the system control device may compare theidentified cadence of the crank arm of the bicycle to a predeterminedcoasting cadence threshold (e.g., 10 RPM) and/or compare the identifiedwheel speed of the bicycle to a predetermined coasting wheel speedthreshold, and identify the first transition when the identified cadenceis, for example, less than or equal to the predetermined coastingcadence threshold and/or the identified wheel speed is, for example,greater than or equal to the predetermined coasting wheel speedthreshold. The predetermined coasting torque threshold, thepredetermined coasting cadence threshold, and/or the predeterminedcoasting wheel speed threshold may be any number of values and be setduring and/or after manufacture of the bicycle and/or the system controldevice, and/or may be set by the user.

As another example, the system control device may identify a firsttorque of, for example, the torque data set that corresponds to a firsttime point, and identify a second torque of, for example, the torquedata set that corresponds to a second time point. The second time pointis after first time point. The second time point may, for example,correspond to most recently recorded data of the torque data set, andthe first time point may, for example, correspond to data of the torquedata set recorded immediately before the most recently recorded data ora greater period of time before the most recently recorded data. Thesystem control device calculates a difference between the first torqueand the second torque and compares the calculated difference to a firstpredetermined threshold difference (e.g., set before or aftermanufacturing of the bicycle and/or the system control device, and/orset by the rider). The first predetermined threshold difference mayrepresent a drop in torque at which coasting of the bicycle is assumed.When, based on the comparison, the system control device determines thecalculated difference is, for example, greater than or equal to thefirst predetermined threshold difference, the system control deviceidentifies the first transition.

After the system control device identifies the first transition, thesystem control device may identify whether the bicycle is being pedaledagain (e.g., at 15 RPM or more and/or with an input torque of 4 Nm ormore). For example, based on the input torque identified in act 402and/or the cadence identified in act 410, the system control device mayidentify a second transition. The second transition may be a transitionbetween coasting and pedaling of the bicycle. When the system controldevice identifies the second transition, the system control device againallows the target cadence to be determined and set in act 406. In oneembodiment, the method 400 is resumed once the second transition isidentified.

The system control device may identify the second transition in anynumber of ways. For example, the system control device may compare theidentified torque at the crank arm to a predetermined pedaling torquethreshold (e.g., 4 Nm), and identify the second transition when theidentified torque is, for example, greater than or equal to thepredetermined pedaling torque threshold. Alternatively or additionally(e.g., as confirmation), the system control device may compare theidentified cadence of the crank arm of the bicycle to a predeterminedpedaling cadence threshold (e.g., 15 RPM), and identify the secondtransition when the identified cadence is, for example, greater than orequal to the predetermined pedaling cadence threshold. The predeterminedpedaling torque threshold and/or the predetermined pedaling cadencethreshold may be any number of values and be set during and/or aftermanufacture of the bicycle and/or the system control device, and/or maybe set by the user.

As another example, the system control device may identify a thirdtorque of, for example, the torque data set that corresponds to a thirdtime point, and identify a fourth torque of, for example, the torquedata set that corresponds to a fourth time point. The third time pointand the fourth time point are both after the second time point. Thefourth time point may, for example, correspond to most recently recordeddata of the torque data set, and the third time point may, for example,correspond to data of the torque data set recorded immediately beforethe most recently recorded data or a period of time before the mostrecently recorded data. The system control device calculates adifference between the fourth torque and the third torque and comparesthe calculated difference to a second predetermined threshold difference(e.g., set before or after manufacturing of the bicycle and/or thesystem control device, and/or set by the rider). The secondpredetermined threshold difference may represent a rise in torque atwhich pedaling of the bicycle is assumed. When, based on the comparison,the system control device determines the calculated difference is, forexample, greater than or equal to the second predetermined thresholddifference, the system control device identifies the second transition.

FIG. 6 illustrates a flow chart for another embodiment of a method 600for modifying an automatic shifting mode. In the embodiment shown inFIG. 6 , an instantaneous cadence may be set, or established, uponstarting or initiating automatic mode. In the embodiment, automaticshifting starts with pushing or otherwise actuating an up shift buttonand/or a down shift button for a period of time, such as three seconds.This time is variable and may be anything longer than a normal shifttime. The system control device records the cadence of the rider duringthe three seconds, for example. The system control device sets the uppercadence limit and the lower cadence limit (e.g., a cadence band and acadence range). The cadence is measured and compared with the cadenceband, and the system control device may shift gears based on thecomparison (e.g., if the measured cadence is outside of the cadenceband). One or more automatic mode parameters may be modified based on adetermined rider engagement status (modification conditions). The method600 may be executed in parallel with or instead of the method 400.

In act 602, the system control device identifies sensor data. The systemcontrol device may identify the sensor data at a first time interval(e.g., every 5, 10, 50, 100, 200 ms). The sensor data identifies and/orrepresents a state of the bicycle. The sensor data may be any number ofdifferent types of sensor data from any number of different types ofsensors. The sensor data may be stored in a memory of the system controldevice, and the system control device may identify the sensor data fromthe memory. Alternatively or additionally, the system control device mayreceive at least some of the sensor data directly from one or moresensors of the bicycle.

Sensors of the bicycle, from which the system control device receivesthe sensor data, for example, may include one or more pressure sensorsat a seat of the bicycle that generate pressure data, one or moreswitches at the seat of the bicycle that identify whether a thresholdpressure is being applied to the seat, one or more accelerometers thatgenerate acceleration data, one or more gyroscopes that generate angularvelocity data, one or more inclinometers that generate inclination data,one or more lidar sensors that generate position data, one or moretorque sensors (e.g., a power meter) that generate torque data and/orpower data at a crank arm of the bicycle, one or more other types ofsensors that generate other data, or any combination thereof

In act 604, the system control device determines a rider engagementstatus based on the sensor data identified in act 602. The systemcontrol device may determine one or more rider engagement statuses basedon the sensor data identified in act 602. The rider engagement statusmay describe any number of different riding scenarios that affect thetarget cadence for automatic shifting. For example, the rider engagementstatus may identify whether the rider of the bicycle is standing orseated, whether the bicycle is pointed uphill or downhill, whether thebicycle is in a technical or high powered state, or any combinationthereof. The system control device may identify other rider engagementstatuses. For example, the rider engagement status may include the inputtorque at a crank arm of the bicycle (see the method 400 of FIG. 4 ),and the system control device may execute the method 600 of FIG. 6instead of the method 400 of FIG. 4 . Alternatively, the system controldevice may execute the method 600 of FIG. 6 in parallel with the methodof FIG. 4 .

For example, the system control device may determine whether the rideris seated or standing based on the sensor data identified in act 602. Inone embodiment, the system control device may determine whether therider is seated or standing based on pressure data identified in act602. For example, the system control device may compare a pressure ofthe pressure data identified in act 602 to a predetermined pressurethreshold, and based on the comparison, identify the rider is seatedwhen the pressure is greater than the predetermined pressure (e.g.,greater than or equal to) and identify the rider is standing when thepressure is less than the predetermined pressure. The predeterminedpressure may be stored in the memory of the system control device and/ormay be set by the rider.

In another embodiment, the sensors of the bicycle include one or morepressure switches, and the system control device identifies a signalfrom the one or more pressure switches in act 602. The one or morepressure switches generate the signal when a threshold pressure isreached, which may indicate the rider is seated. In other words, whenthe system control device identifies the signal from the one or morepressure switches in act 602, the system control device determines therider is seated in act 604, and when the system control deviceidentifies lack of the signal (e.g., the threshold pressure is notreached), the system control device determines the rider is standing inact 604.

As another example, the system control device may determine aninclination of the bicycle. For example, the system control device maydetermine whether the bicycle is being pointed uphill or downhill basedon the sensor data identified in act 602. The sensors of the bicycleinclude, for example, the one or more accelerometers, the one or moregyroscopes, and/or the one or more inclinometers, and the system controldevice determines an inclination of the bicycle based on the inclinationdata, the acceleration data, and/or the angular velocity data generatedby the sensors.

In one embodiment, the sensors of the bicycle include an inclinometer,and the system control device identifies the inclination data generatedby the inclinometer in act 602. The system control device determines aninclination of the bicycle based on the inclination data identified inact 602. The system control device determines the bicycle is pointeduphill when the determined inclination is a positive value anddetermines the bicycle is pointed downhill when the determinedinclination is a negative value. In one embodiment, the system controldevice determines an extent of the inclination.

As yet another example, the system control device may determine whetherthe bicycle is in a technical or high powered state based on the sensordata identified in act 602. For example, the sensors of the bicycleinclude the one or more torque sensors, and the system control deviceidentifies, in act 602, the torque data generated at the crank arm ofthe bicycle. In one embodiment, the system control device determines(e.g., calculates) an input power at the crank arm of the bicycle basedon the identified torque data. In another embodiment, the sensors of thebicycle include a power meter that generates power data representing aninput power at the crank arm of the bicycle, and the system controldevice determines the input power based on the power data identified atact 602. In one embodiment, the determined input power is an averageinput power over a predetermined period of time (e.g., one second).

The system control device compares the determined input power at thecrank arm of the bicycle to a predetermined power threshold. Thepredetermined power threshold represents an input power at which atechnical and/or a high powered ride may be assumed. The system controldevice determines, based on the comparison, that the bicycle is in thetechnical or high powered state when the determined input power at thecrank arm is greater than (e.g., greater than or equal to) thepredetermined powered threshold. In one embodiment, the predeterminedpower threshold is 300 Nm. Other predetermined power thresholds may beused. The predetermined power threshold may be stored in the memory ofthe system control device and/or may be set by the rider. In oneembodiment, the system control device may determine the bicycle is inthe technical or high powered state based on a user input. For example,the rider may press a button on the bicycle to generate a request totemporarily enter the technical or high powered state, and transmit thegenerated request to the system control device. The system controldevice may determine the bicycle is in the technical or high poweredstate based on the generated request.

In act 606, the system control device determines a target cadence basedon the determined rider engagement status. The system control device maydetermine the target cadence based on one or more rider engagementstatuses determined in act 604. For example, adjustments to the targetcadence in act 606 based on different determined rider engagementstatuses may be additive. For example, one or more target cadencemodifiers corresponding to one or more rider engagement statusesdetermined in act 604, respectively, may be determined (e.g., a totaltarget cadence modifier) and added to, for example, a default targetcadence. The target cadence modifiers determined in act 606 of themethod 600 may be additive with a target cadence modifier determined inthe method 400. The target cadence modifiers, however, may not increasethe target cadence above a maximum target cadence.

For example, the target cadence modifiers may be determined in parallel(e.g., the method 600 and/or the method 400 may be executed in parallelfor different engagement statuses), and the system control device maydetermine the total target cadence modifier by adding the differenttarget cadence modifiers. The total target cadence modifier may becompared to a predetermined modifier limit, and if the total targetcadence modifier is greater than the predetermined modifier limit, thetotal target cadence modifier may be set to the predetermined modifierlimit. The predetermined modifier limit may be stored in the memory ofthe system control device and/or set by the rider. In one embodiment,the system control device determines the target cadence based on thetotal target cadence modifier and compares the determined target cadenceto a predetermined maximum target cadence. If the determined targetcadence is greater than the predetermined maximum target cadence, thetarget cadence may be set to the predetermined maximum target cadence inact 606.

In one embodiment, the system control device may determine the targetcadence based on the determination of whether the rider is seated orstanding from act 604. For example, when the system control devicedetermines the rider is seated in act 604, the system control device maynot adjust the target cadence from the default target cadence and/or thepreviously determined target cadence. When the system control devicedetermines the rider is standing in act 604, the system control devicemay add a predetermined riding position target cadence modifier to thedefault target cadence and/or the previously determined target cadence.The predetermined riding position target cadence modifier may have anegative value, such that the target cadence adjustment of act 606results in a lower target cadence. In other words, the determined targetcadence is higher when the rider of the bicycle is in the seatedposition compared to when the rider of the bicycle is in the standingposition.

In another embodiment, the system control device may determine thetarget cadence based on the determined inclination of act 604. In oneembodiment, the determination of the target cadence based on thedetermined inclination of act 604 includes the system control devicecomparing the identified inclination to a lower inclination thresholdand an upper inclination threshold. The lower inclination threshold andthe upper inclination threshold form an inclination band, and the systemcontrol device determines, based on the comparisons, whether thedetermined inclination is within the inclination band or outside theinclination band. In other words, the system control device determineswhether the determined inclination is less than the lower inclinationband, whether the determined inclination is greater than the upperinclination band, or whether the determined inclination is within theinclination band. The lower inclination threshold and/or the upperinclination threshold may be stored in the memory of the system controldevice and/or may be set by the rider.

FIG. 7 shows an exemplary plot of cadence over inclination for oneembodiment of the method for modifying the automatic shifting mode ofFIG. 6 . The system control device may determine the target cadence forautomatic shifting based on the functions illustrated in FIG. 7 . Forexample, when the determined inclination is less than the lowerinclination threshold I₁ (e.g., −10 percent grade), the system controldevice may add a predetermined downhill target cadence modifier (e.g.,having a negative value; −10 RPM) to the default target cadence and/orthe previously determined target cadence. When the determinedinclination is greater than the upper inclination threshold I₂ (e.g., 30percent grade; 10 RPM), the system control device may add apredetermined uphill target cadence modifier (e.g., having a positivevalue; 10 RPM) to the default target cadence and/or the previouslydetermined target cadence. In other words, the determined target cadenceis greater when the determined inclination is positive (e.g., thebicycle is pointing uphill) compared to when the determined inclinationis negative (e.g., the bicycle is pointing downhill).

In one embodiment, when the determined inclination is greater than thelower inclination threshold I₁ and less than the upper inclinationthreshold I₂, the system control device determines the target cadence(or an inclination-based target cadence modifier) by inputting thedetermined inclination into a function (e.g., linear function) betweenthe lower inclination threshold I₁ at a first predetermined targetcadence (e.g., 65 RPM) and the upper inclination threshold I₂ at asecond predetermined target cadence (e.g., 95 RPM). The lowerinclination threshold I₁, the first predetermined target cadence, thepredetermined downhill target cadence modifier, the upper inclinationthreshold I₂, the second predetermined target cadence, the predetermineduphill target cadence modifier, or any combination thereof may be storedin the memory of the system control device during and/or set by therider.

In one embodiment, the system control device adds the predetermineduphill target cadence modifier to the target cadence when the systemcontrol device determines the bicycle is pointed uphill, and adds thedownhill target cadence modifier to the target cadence when the systemcontrol device determines the bicycle is pointed downhill. In otherwords, the system control device adjusts the target cadence based onwhether the bicycle is pointed uphill or downhill, respectively, butdoes not otherwise vary the target cadence across different grades.

In yet another embodiment, the system control device may determine thetarget cadence based on whether the bicycle is in the technical or highpowered state. When the system control device determines the bicycle isin the technical or high powered state in act 604, the system controldevice may set the target cadence to a predetermined maximum targetcadence. In other words, the target cadence may be greatest when thesystem control device determines the bicycle is in the technical or highpowered state. The predetermined maximum target cadence may be anynumber of values including, for example, 95 RPM, 105 RPM, or 120 RPM.Other values may be used for the predetermined maximum target cadence.The predetermined maximum target cadence may be stored in the memory ofthe system control device and/or set by the rider.

After the system control device determines the bicycle is in thetechnical or high powered state and determines the target cadence as thepredetermined maximum target cadence, the system control device maypause the method 600 and execute an automatic adjustment method (e.g.,the method 300) based on the target cadence determined in act 606 (e.g.,the predetermined maximum target cadence).

The system control device may continue to receive the torque data and/orthe power data at the first time interval, and may continue to comparethe determined input power at the crank arm of the bicycle to thepredetermined power threshold at the first time interval or a secondtime interval that is different than the first time interval. Forexample, the torque data and/or the power data may be received ten times(e.g., every 100 ms) for every time the determined input power at thecrank arm is compared to the predetermined power threshold. In oneembodiment, the determined power is an average power averaged over aperiod of time (e.g., the averaging period).

The system control device may resume the method 600 if, based on thecontinued comparison of the determined input power at the crank arm tothe predetermined power threshold, the determined input power is lessthan the predetermined power threshold a predetermined number of timesin succession. In other words, the system control device may determinethe technical or high powered state is to be exited. For example, thesystem control device may resume the method 600 if the determined inputpower is less than the predetermined power threshold ten times in a row.The predetermined number of times in succession may be more or fewer. Inone embodiment, the system control device may identify the technical orhigh powered state is to be exited based on a user input (e.g., a buttonpress).

The system control device may adjust (e.g., decrease) the target cadenceonce the system control device determines the technical or high poweredstate is to be exited (e.g., an end of the technical or high poweredstate). For example, the system control device may decrease the targetcadence from the predetermined maximum target cadence to the targetcadence determined immediately before the technical or high poweredstate was identified. Alternatively, the system control device maydecrease the target cadence to the default target cadence.

In act 608, the system control device determines a cadence band based onthe target cadence determined in act 606. The cadence band includes anupper cadence limit and a lower cadence limit. The system control devicemay determine the upper cadence limit by adding a predetermined cadenceupper limit modifier (e.g., upper limit modifier) to the target cadencedetermined in act 606, and may determine the lower cadence limit bysubtracting (e.g., a positive value) or adding (e.g., a negative value)a predetermined cadence lower limit modifier (e.g., lower limitmodifier) from/to the target cadence determined in act 606. For example,the upper limit modifier is 10 RPM, and the lower limit modifier is 8RPM. Other values for the upper limit modifier and the lower limitmodifier may be used. The upper limit modifier and the lower limitmodifier may be different or the same.

The upper limit modifier and the lower limit modifier may be stored inthe memory of the system control device. The upper limit modifier andthe lower limit modifier may be set and stored in the memory duringmanufacture of the system control device or the bicycle, aftermanufacture of the system control device or the bicycle, and/or by auser of the bicycle. The upper limit modifier and the lower limitmodifier may be the same for each target cadence or may be different forat least some target cadences. For example, the determined cadence bandmay have a first range (e.g., 20 RPM) when the target cadence is a firsttarget cadence (e.g., 85 RPM) that is greater than a second range (e.g.,18 RPM) when the target cadence is a second target cadence (e.g., 75RPM).

In one embodiment, the memory of the system control device stores upperlimit modifiers, lower limit modifiers, upper cadence limits, lowercadence limits, or any combination thereof for a number of differenttarget cadences, and the system control device identifies an upper limitmodifier, a lower limit modifier, an upper cadence limit, a lowercadence limit, or any combination thereof based on the target cadence.

In act 610, the system control device identifies a cadence of the crankarm of the bicycle. For example, the system control device determines acadence (e.g., an average cadence over a period of time, such as theaveraging period) of the crank arm of the bicycle based on data from oneor more sensors (e.g., a cadence sensor or a power meter). In anotherexample, the system control device may determine the cadence of thecrank arm of the bicycle based on wheel speed data received from one ormore wheel speed sensors of the bicycle. In one embodiment, the systemcontrol device estimates the cadence of the crank arm of the bicyclebased on a wheel speed determined from the wheel speed data and acurrent gear ratio.

In act 612, the system control device determines whether the bicycle isto be shifted. For example, the system control device compares thecadence of the crank arm determined in act 610 to the cadence banddetermined in act 608. In other words, the system control device maydetermine whether the determined cadence of the crank arm is within oroutside of the determined cadence band.

If the system control device determines a gear shift is needed based on,for example, the comparison of the determined cadence to the determinedcadence band (e.g., the determined cadence is outside of the determinedcadence band), the method 600 moves to act 614. If the system controldevice determines a gear shift is not needed based on, for example, thecomparison (e.g., the determined cadence is within the adjusted cadenceband), the method 600 may return to act 602. While the determinedcadence is within determined cadence band, the method may execute acts602-612 once every predetermined period (e.g., an update period; every500 ms, 200 ms, 100 ms, 50 ms).

In act 614, the system control device generates a gear shift commandbased on the comparison in act 612 (e.g., when the determined cadence isoutside the adjusted cadence band). If, based on the comparison, thedetermined cadence is less than the lower cadence limit of thedetermined cadence band, the system control device may generate a gearshift command for an inboard gear shift (e.g., to an easier gear); if,based on the comparison, the determined cadence is greater than theupper cadence limit of the determined cadence band, the system controldevice may generate a gear shift command for an outboard gear shift(e.g., to a harder gear). The gear shift command may include any numberof different types of data including, for example, instructions for amotor of the rear derailleur to turn on, a direction of rotation for themotor, a length of time the motor is to remain on, and/or other data.

In one embodiment, a motor of the bicycle is actuated based on the gearshift command generated in act 614. For example, the system controldevice actuates a motor of the rear derailleur of the bicycle to movethe rear derailleur and a chain supported by the rear derailleur toexecute the gear shift identified within the gear shift commandgenerated in act 614. Alternatively or additionally, the system controldevice actuates a drive unit such as an e-bike motor. After the gearshift initiated in act 614 is executed, the method 600 returns to act602.

FIG. 8 illustrates a bicycle control system 800 that includes multiplemanual control devices 142A-D, a system control device 150, at least onesensor 802, such as a sensor 141, a cadence sensor 804, and/or a speedsensor 806 described with respect to FIG. 1 , and bicycle components808A-B, such as a rear derailleur and/or a front derailleur, or one ormore internal gear hubs. The manual control devices 142A-D arecommunicatively coupled with the system control device 150, such as by acable or wirelessly, to communicate control signals to the systemcontrol device(s) 142. The system control device 150 is configured tocommunicate control signals responsive to the received control devicesignals, or resulting from automatic shifting determinations, to thecomponent(s) 808A-B. In an embodiment, the system control device 150 isconfigured to communicate the control signals wirelessly to one ormultiple bicycle components 808A-B. The control signals may becommunicated wirelessly using any technique, protocol, or standard. Forexample, Institute of Electrical and Electronics Engineers (“IEEE”)802.11 standards, IEEE 802.15.1 or BLUETOOTH ® standards, ANT™ or ANT+™standards, and/or AIREATM standards may be used. The bicycle components808A-B may be any bicycle component. For example, the components 808A-Bmay be a drive train components and/or suspension components. In anembodiment, a component 808A may be a rear derailleur and the othercomponent 808B may be a front derailleur. Other components may also beincluded. For example, the system control device 150 may be incommunication with, or provide control signals for, three or morecomponents, such as a front derailleur, a rear derailleur, and a frontsuspension system. Alternatively, the system control device 150 may onlyprovide control signals for a single component 808A. In an embodiment,the receiver may communicate control signals wirelessly with onecomponent 808A, and the one component 808A may communicate the controlsignals to another component 808B.

In an embodiment, the bicycle control system 800 includes at least onemanual control device 142 including a control mechanism for generating acontrol signal to control at least one bicycle component 808A. Thesystem control device 150 may be a standalone device, or may beintegrated with one or more components 808A-B.

FIG. 9 is a block diagram of an exemplary control system 900 for abicycle that may be used to implement a system control device 150. Thecontrol system 900 may be used alone to communicate with and controlbicycle components, or the control system 900 may be used in conjunctionwith at least one other control system for components of the bicycle,such as a primary control system that may include alternative controldevices such as brake lever housing integrated shift controllers. Thecontrol system 900 includes a system control device 150, one or morecontrol devices 142, and/or one or more sensors 802. The system controldevice 150 includes a processor 902, a memory 904, a sensorcommunication interface 906, a power supply 908, and a control deviceinterface 910. Optionally, the system control device 150 may alsoinclude a user interface 912. Additional, different, or fewer componentsare possible for the system control device 150.

The processor 902 may include a general processor, digital signalprocessor, an application specific integrated circuit (ASIC), fieldprogrammable gate array (FPGA), analog circuit, digital circuit,combinations thereof, or other now known or later developed processor.The processor 902 may be a single device or combinations of devices,such as through shared or parallel processing. In one embodiment, forexample, a CPU 902 used may be an Atmel® ATmega324PA microcontrollerwith an internal eeprom memory, and a transmitter and a receiver usedmay be an Atmel® AT86RF231 2.4GHz transceiver utilizing AES encryptionand DSS spread spectrum technology supporting 16 channels and the IEEE802.15.4 communication protocol.

The memory 904 may be a volatile memory or a non-volatile memory. Thememory 904 may include one or more of a read only memory (ROM), randomaccess memory (RAM), a flash memory, an electronic erasable program readonly memory (EEPROM), or other type of memory. The memory 904 may beremovable from the system control device 150, such as a secure digital(SD) memory card. In a particular non-limiting, exemplary embodiment, acomputer-readable medium may include a solid-state memory such as amemory card or other package that houses one or more non-volatileread-only memories. Further, the computer-readable medium may be arandom access memory or other volatile re-writable memory. Additionally,the computer-readable medium may include a magneto-optical or opticalmedium, such as a disk or tapes or other storage device. Accordingly,the disclosure is considered to include any one or more of acomputer-readable medium and other equivalents and successor media, inwhich data or instructions may be stored.

The memory 904 is a non-transitory computer-readable medium and isdescribed to be a single medium. However, the term “computer-readablemedium” includes a single medium or multiple media, such as acentralized or distributed memory structure, and/or associated cachesthat are operable to store one or more sets of instructions and otherdata. The term “computer-readable medium” shall also include any mediumthat is capable of storing, encoding or carrying a set of instructionsfor execution by a processor or that cause a computer system to performany one or more of the methods or operations disclosed herein.

In an alternative embodiment, dedicated hardware implementations, suchas application specific integrated circuits, programmable logic arraysand other hardware devices, may be constructed to implement one or moreof the methods described herein. Applications that may include theapparatus and systems of various embodiments may broadly include avariety of electronic and computer systems. One or more embodimentsdescribed herein may implement functions using two or more specificinterconnected hardware modules or devices with related control and datasignals that may be communicated between and through the modules, or asportions of an application-specific integrated circuit. Accordingly, thepresent system encompasses software, firmware, and hardwareimplementations.

The power supply 908 is a portable power supply, which may be storedinternal to the system control device 150, or stored external to thesystem control device 150 and communicated to the system control device150 through a power conductive cable. The power supply 908 may involvethe generation of electric power, for example, using a mechanical powergenerator, a fuel cell device, photo-voltaic cells, or other powergenerating devices. The power supply 908 may include a battery such as adevice consisting of two or more electrochemical cells that convertstored chemical energy into electrical energy. The power supply 908 mayinclude a combination of multiple batteries or other power providingdevices. Specially fitted or configured battery types, or standardbattery types such as CR 2012, CR 2016, and/or CR 2032 may be used.

The control device interface 910 provides for data communication fromthe control devices 142 to the system control device 150. The controldevice interface 910 includes wired conductive signal and/or datacommunication circuitry operable to interpret signals provided bydifferent control devices 142. For example, the control device interface910 may include a series of ports for receiving control device inputcables. Each of the ports may be distinguishable by the processor 902through grouping tables or arrays, or through physical circuits or othercircuitry that provide for grouping control device inputs.Alternatively, different control devices 142 may communicate with thesystem control device 150 wirelessly as is described herein.

The user interface 912 may be one or more buttons, keypad, keyboard,mouse, stylus pen, trackball, rocker switch, touch pad, voicerecognition circuit, or other device or component for communicating databetween a user and the system control device 150. The user interface 912may be a touch screen, which may be capacitive or resistive. The userinterface 912 may include a liquid crystal display (“LCD”) panel, lightemitting diode (LED), LED screen, thin film transistor screen, oranother type of display. The user interface 912 may also include audiocapabilities, or speakers. In an embodiment, the user interface isconfigured to provide a notice to a user that the system control device150 has entered automatic mode, paused automatic mode, exited automaticmode, and/or modified a parameter of automatic mode. The notice may beaudible, visual, and/or haptic. For example, an audible beep may beused. In an embodiment, an LCD panel is configured to display a visualnotice.

In an embodiment, the user interface 912 includes multiple buttons andan LED indicator. The multiple buttons are used to communicate commandsto the system control device 150, and the LED indicator lights toindicate input of the commands.

The sensor communication interface 906 is configured to communicate datasuch as sensor values with at least one sensor 802 The sensorcommunication interface 906 communicates the data using any operableconnection. An operable connection may be one in which signals, physicalcommunications, and/or logical communications may be sent and/orreceived. An operable connection may include a physical interface, anelectrical interface, and/or a data interface. The sensor communicationinterface 80 provides for wireless communications in any now known orlater developed format.

Wireless communication between components is described herein. Althoughthe present specification describes components and functions that may beimplemented in particular wireless communication embodiments withreference to particular standards and protocols, the invention is notlimited to such standards and protocols. For example, standards forInternet and other packet switched network transmission (e.g., TCP/IP,UDP/IP, HTML, HTTP, HTTPS) represent examples of the state of the art.Such standards are periodically superseded by faster or more efficientequivalents having essentially the same functions. Accordingly,replacement standards and protocols having the same or similar functionsas those disclosed herein are considered equivalents thereof.

In an embodiment, components of the bicycle described herein willcommunicate with each other. In the case of wireless communication, thecomponents will initially be paired so as to allow secure communicationbetween components on the bicycle without interference from devices notassociated with the system. Next one or more of the components may bepaired with a separate device like a computer, tablet or phone. Thispaired device may provide the user interface to allow the user tocommunicate with the components on the bicycle, for example the systemcontrol device 150. Examples of communication are updating firmware,setting variables, and running diagnostic tools and analysis.

In accordance with various embodiments of the present disclosure, themethods described herein may be implemented with software programsexecutable by a computer system, such as the system control device 150.Further, in an exemplary, non-limited embodiment, implementations caninclude distributed processing, component/object distributed processing,and parallel processing. Alternatively, virtual computer systemprocessing can be constructed to implement one or more of the methods orfunctionality as described herein.

The methods and techniques described herein may be implemented usinghardware configurations described herein and one or more computerprograms providing instructions for the hardware. A computer program(also known as a program, software, software application, script, orcode) can be written in any form of programming language, includingcompiled or interpreted languages, and it can be deployed in any form,including as a standalone program or as a module, component, subroutine,or other unit suitable for use in a computing environment. A computerprogram does not necessarily correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor data (e.g., one or more scripts stored in a markup languagedocument), in a single file dedicated to the program in question, or inmultiple coordinated files (e.g., files that store one or more modules,sub programs, or portions of code). A computer program may be deployedto be executed on one computer or on multiple computers that are locatedat one site or distributed across multiple sites and interconnected by acommunication network.

The processes and logic flows described in this specification can beperformed by one or more programmable processors executing one or morecomputer programs to perform functions by operating on input data andgenerating output. The processes and logic flows may also be performedby, and the apparatus may also be implemented as, special purpose logiccircuitry (e.g., a field programmable gate array (FPGA) or anapplication specific integrated circuit (ASIC)).

As used in this application, the term ‘circuitry’ or ‘circuit’ refers toall of the following: (a) hardware-only circuit implementations (such asimplementations in only analog and/or digital circuitry) and (b) tocombinations of circuits and software (and/or firmware), such as (asapplicable): (i) to a combination of processor(s) or (ii) to portions ofprocessor(s)/software (including digital signal processor(s)), software,and memory(ies) that work together to cause an apparatus, such as amobile phone or server, to perform various functions) and (c) tocircuits, such as a microprocessor(s) or a portion of amicroprocessor(s), that require software or firmware for operation, evenif the software or firmware is not physically present.

This definition of ‘circuitry’ applies to all uses of this term in thisapplication, including in any claims. As a further example, as used inthis application, the term “circuitry” would also cover animplementation of merely a processor (or multiple processors) or portionof a processor and its (or their) accompanying software and/or firmware.The term “circuitry” would also cover, for example and if applicable tothe particular claim element, a baseband integrated circuit orapplications processor integrated circuit for a mobile computing deviceor a similar integrated circuit in server, a cellular network device, orother network device.

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor receives instructions and data from a read only memory or arandom access memory or both. The essential elements of a computer are aprocessor for performing instructions and one or more memory devices forstoring instructions and data. Generally, a computer also includes, orbe operatively coupled to receive data from or transfer data to, orboth, one or more mass storage devices for storing data, e.g., magnetic,magneto optical disks, or optical disks. However, a computer need nothave such devices. Moreover, a computer can be embedded in anotherdevice, e.g., a mobile telephone, a personal digital assistant (“PDA”),a mobile audio player, a Global Positioning System (“GPS”) receiver, ora system control device 150 to name just a few. Computer readable mediasuitable for storing computer program instructions and data include allforms of non-volatile memory, media and memory devices, including by wayof example semiconductor memory devices, e.g., EPROM, EEPROM, and flashmemory devices; magnetic disks, e.g., internal hard disks or removabledisks; magneto optical disks; and CD ROM and DVD-ROM disks. Theprocessor and the memory can be supplemented by, or incorporated in,special purpose logic circuitry. In an embodiment, a system controldevice 150 is integrated with a mobile telephone, PDA, a mobile audioplayer, a GPS receiver, and communicates wirelessly with bicyclecomponents to provide automatic mode control.

The illustrations of the embodiments described herein are intended toprovide a general understanding of the structure of the variousembodiments. The illustrations are not intended to serve as a completedescription of all of the elements and features of apparatus and systemsthat utilize the structures or methods described herein. Many otherembodiments may be apparent to those of skill in the art upon reviewingthe disclosure. Other embodiments may be utilized and derived from thedisclosure, such that structural and logical substitutions and changesmay be made without departing from the scope of the disclosure.Additionally, the illustrations are merely representational and may notbe drawn to scale. Certain proportions within the illustrations may beexaggerated, while other proportions may be minimized. Accordingly, thedisclosure and the figures are to be regarded as illustrative ratherthan restrictive.

While this specification contains many specifics, these should not beconstrued as limitations on the scope of the invention or of what may beclaimed, but rather as descriptions of features specific to particularembodiments of the invention. Certain features that are described inthis specification in the context of separate embodiments can also beimplemented in combination in a single embodiment. Conversely, variousfeatures that are described in the context of a single embodiment canalso be implemented in multiple embodiments separately or in anysuitable sub-combination. Moreover, although features may be describedabove as acting in certain combinations and even initially claimed assuch, one or more features from a claimed combination can in some casesbe excised from the combination, and the claimed combination may bedirected to a sub-combination or variation of a sub-combination.

Similarly, while operations and/or acts are depicted in the drawings anddescribed herein in a particular order, this should not be understood asrequiring that such operations be performed in the particular ordershown or in sequential order, or that all illustrated operations beperformed, to achieve desirable results. In certain circumstances,multitasking and parallel processing may be advantageous. Moreover, theseparation of various system components in the embodiments describedabove should not be understood as requiring such separation in allembodiments, and it should be understood that any described programcomponents and systems can generally be integrated together in a singlesoftware product or packaged into multiple software products.

One or more embodiments of the disclosure may be referred to herein,individually and/or collectively, by the term “invention” merely forconvenience and without intending to voluntarily limit the scope of thisapplication to any particular invention or inventive concept. Moreover,although specific embodiments have been illustrated and describedherein, it should be appreciated that any subsequent arrangementdesigned to achieve the same or similar purpose may be substituted forthe specific embodiments shown. This disclosure is intended to cover anyand all subsequent adaptations or variations of various embodiments.Combinations of the above embodiments, and other embodiments notspecifically described herein, are apparent to those of skill in the artupon reviewing the description.

The Abstract of the Disclosure is provided to comply with 37 C.F.R.§1.72(b) and is submitted with the understanding that it will not beused to interpret or limit the scope or meaning of the claims. Inaddition, in the foregoing Detailed Description, various features may begrouped together or described in a single embodiment for the purpose ofstreamlining the disclosure. This disclosure is not to be interpreted asreflecting an intention that the claimed embodiments require morefeatures than are expressly recited in each claim. Rather, as thefollowing claims reflect, inventive subject matter may be directed toless than all of the features of any of the disclosed embodiments. Thus,the following claims are incorporated into the Detailed Description,with each claim standing on its own as defining separately claimedsubject matter.

It is intended that the foregoing detailed description be regarded asillustrative rather than limiting and that it is understood that thefollowing claims including all equivalents are intended to define thescope of the invention. The claims should not be read as limited to thedescribed order or elements unless stated to that effect. Therefore, allembodiments that come within the scope and spirit of the followingclaims and equivalents thereto are claimed as the invention.

What is claimed is:
 1. A method for controlling electronic shifting of abicycle, the method comprising: identifying, by a processor, a torque ata crank arm of the bicycle; comparing, by the processor, the identifiedtorque or a parameter based on the identified torque to a predeterminedband, the predetermined band having an upper limit and a lower limit;determining, by the processor, a target cadence based on the comparison;determining, by the processor, a cadence band based on the determinedtarget cadence; and controlling the electronic shifting of the bicyclebased on the determined cadence band, the controlling of the electronicshifting of the bicycle comprising actuating a motor of a derailleur ofthe bicycle for the electronic shifting of the bicycle when a cadence ofthe bicycle is outside of the determined cadence band.
 2. The method ofclaim 1, wherein the comparing comprises comparing the identified torqueto a predetermined torque band, and wherein the upper limit is an uppertorque limit, and the lower limit is a lower torque limit.
 3. The methodof claim 2, wherein determining the target cadence based on thecomparison comprises: identifying a first predetermined target cadenceas the target cadence when the identified torque is less than the lowertorque limit; and identifying a second predetermined target cadence asthe target cadence when the identified torque is greater than the uppertorque limit, wherein the second predetermined target cadence is greaterthan the first predetermined target cadence.
 4. The method of claim 3,wherein determining the target cadence based on the comparison furthercomprises: when the identified torque is within the predetermined torqueband, determining, by the processor, the target cadence based on theidentified torque.
 5. The method of claim 4, wherein determining thetarget cadence based on the identified torque comprises determining thetarget cadence using the identified torque as an input to a linearfunction between the first predetermined target cadence at the lowertorque limit and the second predetermined target cadence at the uppertorque limit.
 6. The method of claim 1, wherein the determined cadenceband has a first range when the target cadence is a first targetcadence, and the determined cadence band has a second range when thetarget cadence is a second target cadence, the second target cadencebeing different than the first target cadence, and wherein the secondrange is different than the first range.
 7. The method of claim 1,further comprising repeating the identifying, the comparing, thedetermining of the target cadence, the determining of the cadence band,and the controlling at a predetermined time interval.
 8. The method ofclaim 7, wherein the predetermined time interval is a firstpredetermined time interval, wherein the method further comprises:receiving, by the processor, torque data from one or more torque sensorsof the bicycle; storing, by a memory in communication with theprocessor, the received torque data in a torque data set; repeating thereceiving and the storing at a second predetermined time interval,wherein identifying the torque at the crank arm of the bicycle comprisesaveraging, by the processor, a subset of the torque data set, the subsetof the torque data set corresponding to a predetermined time period, andwherein the identified torque at the crank arm is the averaged subset ofthe torque data set.
 9. The method of claim 8, further comprising:identifying, by the processor, a transition between pedaling andcoasting of the bicycle based on the received torque data; fixing, bythe processor, the target cadence based on the identifying of thetransition between pedaling and coasting of the bicycle.
 10. The methodof claim 9, wherein the transition is a first transition, and whereinthe method further comprises: identifying, by the processor, a secondtransition based on data of the torque data set, the second transitionbeing between coasting and pedaling of the bicycle; and allowing, by theprocessor, the target cadence to change based on the identifying of thesecond transition.
 11. The method of claim 9, wherein identifying thetransition comprises: identifying a first torque value at a first timepoint and a second torque value at a second time point from the torquedata set, the second time point being after the first time point;determining a difference between the first torque value and the secondtorque value; comparing the determined difference to a threshold torquedifference; and identifying the transition based on the comparison ofthe determined difference to the threshold torque difference.
 12. Themethod of claim 1, further comprising determining, by the processor, apower based on the identified torque, wherein the comparing comprisescomparing the determined power to a predetermined power band, thepredetermined power band having an upper power limit and a lower powerlimit.
 13. A controller for a bicycle, the controller comprising: amemory configured to store a lower torque limit and an upper torquelimit; and a processor in communication with the memory, the processorbeing configured to: identify a torque at a crank arm of the bicycle;compare the identified torque to the lower torque limit and the uppertorque limit; determine a target cadence based on the comparisons;determine a cadence band based on the determined target cadence; andcontrol electronic shifting of the bicycle based on the determinedcadence band.
 14. The controller of claim 13, wherein the control of theelectronic shifting of the bicycle comprises the processor being furtherconfigured to: compare a cadence of the bicycle to the determinedcadence band; and actuate a motor of a derailleur of the bicycle for theelectronic shifting of the bicycle when, based on the comparison, thecadence of the bicycle is outside of the determined cadence band. 15.The controller of claim 13, wherein the memory is further configured tostore a first predetermined target cadence and a second predeterminedcadence, and wherein the determination of the target cadence based onthe comparison comprises the processor being further configured to:identify the first predetermined target cadence as the target cadencewhen the identified torque is less than the lower torque limit; identifythe second predetermined target cadence as the target cadence when theidentified torque is greater than the upper torque limit, wherein thesecond predetermined target cadence is greater than the firstpredetermined target cadence; and determine the target cadence based onthe identified torque when the identified torque is greater than thelower torque limit and less than the upper torque limit.
 16. Thecontroller of claim 15, wherein the memory is further configured tostore a cadence function, wherein the determination of the targetcadence based on the identified torque when the identified torque isgreater than the lower torque limit and the less than the upper torquelimit comprises the processor being further configured to determine thetarget cadence using the identified torque as an input to the cadencefunction.
 17. The controller of claim 16, wherein the cadence functionis a linear function.
 18. The controller of claim 13, wherein the memoryis further configured to store a plurality of cadence bandscorresponding to a plurality of torques, respectively, the plurality ofcadence bands including the cadence band and the plurality of torquesincluding the identified torque, wherein the determination of thecadence band comprises the processor being further configured toidentify the cadence band from the plurality of stored cadence bandsbased on the determined target cadence.
 19. The controller of claim 13,further comprising one or more torque sensors configured to generatetorque data, wherein the processor is further configured to: determine atorque value from the generated torque data at a predetermined timeinterval; wherein the identification of the torque at the crank arm ofthe bicycle comprises an average of a subset of the torque data set, thesubset of the torque data set corresponding to a predetermined timeperiod, and wherein the identified torque at the crank arm is theaveraged subset of the torque data set.
 20. In a non-transitorycomputer-readable storage medium that stores instructions executable byone or more processors to control electronic shifting of a bicycle, theinstructions comprising: identifying a torque at a crank arm of thebicycle; determining a power based on the identified torque; comparingthe determined power to a predetermined upper power limit and apredetermined lower power limit; determining a target cadence based onthe comparisons; determining a cadence band based on the determinedtarget cadence; and controlling the electronic shifting of the bicyclebased on the determined cadence band, the controlling of the electronicshifting of the bicycle comprising actuating a motor of a derailleur ofthe bicycle for the electronic shifting of the bicycle when a cadence ofthe bicycle is outside of the determined cadence band.